package com.spring.membercardapi.web.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestBody;

import com.spring.membercardapi.web.model.*;
import com.spring.membercardapi.web.requestmodel.ApplicationUpdate;
import com.spring.security.web.model.BaseResult;

public interface MemberCardApiService {
	Map<String, Object> getCardTypeList();

	Map<String, Object> getPackageDetail(String package_id);

	Map<String, Object> insertapplyCard(String token,String user_name, String family_member_id,String baby_name,
			String baby_sex_code,String baby_birthday,
			 String info_source_code,
			String card_level_code, String region_id, String coupon_code,
			String apply_way_code, String kids_park_id,String c_family_member_id ,String real_name , String guardians,String interest_service)
			throws Exception;

	Map<String, Object> getDataDictionaryList(String type);

	Map<String, Object> getApplicationList(String token,String application_id);

	Map<String, Object> updateApplication (String token,
			String application_id, String baby_name,String baby_sex_code,String baby_birthday,
			String info_source_code, String card_level_code, String region_id,
			String coupon_code, String kids_park_id) throws Exception;
	 Map<String, Object> updateGuardian (String token,String guardian_id,String family_member_id,String identity_card,String name,String phone,String member_name) throws Exception;
	 Map<String, Object> deleteGuardian(String token,String guardian_id) throws Exception;
	 
	 Map<String, Object> addApplicationGuardian (String token,String membercard_application_id,String family_member_id,
				String identity_card,String name,String phone,String member_name) throws Exception;
	 Map<String, Object> cancelApplication (String token,String membercard_application_id,String cancel_reason) throws Exception;
	 Map<String, Object> getCardList (String token,String isvalid) throws Exception;
	 Map<String, Object> getCardDetaiList (String token,String membercard_id) throws Exception;
	 
	 Map<String, Object> checkOut(String token, String membercard_id,
				String business_type_code,String package_detail_item_id ,String amount, String comment,
				String unit_code, String payment_way_code,String kids_park_id) throws Exception;
	 
	 Map<String, Object> getConsumeList(String token,String membercard_id,String page_size,
				String page_index,String skip,String rows) throws Exception;
	 
	 Map<String, Object> getPointBillList(String token,String page_size,
				String page_index,String skip,String rows) throws Exception;
	 
	 Map<String, Object> createCouponCode(String token) throws Exception;
	 Map<String, Object> getMyCouponList(String token,String isused) throws Exception;

	// Map<String, Object> applyCardBackground( Map<String,Object> json) throws Exception ;
	 Map<String, Object> applyCardPayment(String order_payment,String c_membercard_applicationID,String payment_amount,String card_number,
			 String card_out_number,String contract_name,String begin_time,String end_time,String file,String OperatorID,
			 String OperatorName,String rechargeAmount,String totalDueAmount,String earnestMoney,String assistant_id,String assistant_name,String isDiscount
			 ,String kids_park_id,HttpServletRequest request) throws Exception;
	 
	 
	 Map<String, Object> applyCardBackground(String real_name, String phone, String info_source_code, String coupon_code, String apply_way_code,
				String kids_park_id, String interest_service, String assistant_id, String assistant_name, String auditor_id, 
				String auditor_name, String desc,String operater_id, String operater_name, String consume_recommend_id,
				String consume_recommend_name, List<Map<String,Object>> guardians,List<Map<String,Object>> baby,List<Map<String,Object>> packages,String address,String zipcode,String apply_type,String family_phone,
				String consume_recommend_deptID,String consume_recommend_dept_name,String InitialOperatorID,String InitialOperatorName,String applicationID,String earnestMoney,HttpServletRequest request) throws Exception ;

	 Map<String, Object> getFamilyDetail(String phone,String card_number,String member_number) throws Exception;
	 Map<String, Object> getApplicationByID(String application_id) throws Exception;
	 Map<String, Object> checkCoupon(String phone,String c_user_id,String coupon_code)  throws Exception;
	 Object updateapply(ApplicationUpdate application,BindingResult result,HttpServletRequest request) throws Exception;

	 Map<String, Object> applyCardBackground2(String real_name, String phone, String info_source_code, String coupon_code, String apply_way_code,
				String kids_park_id, String interest_service, String assistant_id, String assistant_name, String auditor_id, 
				String auditor_name, String desc,String operater_id, String operater_name, String consume_recommend_id,
				String consume_recommend_name, List<Map<String,Object>> guardians,List<Map<String,Object>> baby,List<Map<String,Object>> packages,
				String address,String zipcode,String apply_type,String family_phone,String consume_recommend_deptID
				,String consume_recommend_dept_name,String InitialOperatorID,String InitialOperatorName,
				
				String earnestMoney,			
				String order_payment2,String payment_amount,
				String card_number,String card_out_number,String contract_name,String begin_time,String end_time,String file,
				
				String rechargeCardCategory,String recharge_amount,String point,String isPaidAll,
				String isDiscount,String discount_type,
				HttpServletRequest request) throws Exception ;
	 
	 Map<String, Object> getContractByID(String contractID) throws Exception;
	 
	 BaseResult applyCardPaymentRemain(int isPaidAll,String order_payment2,String contractID,String isDiscount) throws Exception;
	 BaseResult updateContract(@RequestBody ContractUpdate contractUpdate,HttpServletRequest request) throws Exception;
}
